<?
// fichier requis
require_once('../plugins/items_et_traductions/inc/fonctions_php.php');
global $updatetable;
global $connect_statut;

global $all_langs;
$liste_langues = @$GLOBALS['meta']['langues_multilingue'].',';
$tableau_langues = explode(',',$liste_langues);

// préparation de la réponse de l'initialisation
$reponse_init_plugin = "";
	
// creation du fichier config
if(!file_exists("../plugins/items_et_traductions/config.php")){
	if(!fopen("../plugins/items_et_traductions/config.php","w+"))$reponse_init_plugin .= _T('traduction:droits_fichier_config');
	else {
		// recup des infos de connexion dans le fichier config/connect
		$Ligne = '';
		$fp=fopen('../config/connect.php','r');
		while(!feof($fp)) {
			$Ligne .= fgets($fp,255);
			}
		$extract = eregi("spip_connect_db((.*))",$Ligne,$regs);
		$explode = explode(',',str_replace(array("'",'"','(',')'),'',$regs[1]));
		fclose($fp);
		$prepa_config = "<?\n";
		$prepa_config .= "\$GLOBALS['langue_native'] = '".$GLOBALS['spip_lang']."';\n";
		$prepa_config .= "\$GLOBALS['plug_host'] = \"".$explode[0]."\";\n";
		$prepa_config .= "\$GLOBALS['plug_bdd'] = \"".$explode[4]."\";\n";
		$prepa_config .= "\$GLOBALS['plug_user'] = \"".$explode[2]."\";\n";
		$prepa_config .= "\$GLOBALS['plug_password'] = \"".$explode[3]."\";\n";
		$prepa_config .= "//------------------------------------------------------------------\n";
		$prepa_config .= "function connexion(){\n";
		$prepa_config .= "// connexion au serveur\n";
   		$prepa_config .= "mysql_connect(\$GLOBALS['plug_host'],\$GLOBALS['plug_user'],\$GLOBALS['plug_password']) or die(\"erreur de connexion au serveur $host\");\n";
   		$prepa_config .= "mysql_select_db(\$GLOBALS['plug_bdd']) or die(\"erreur de connexion  la base de donnes \".\$GLOBALS['plug_bdd']);\n";
		$prepa_config .= "}\n";
		$prepa_config .= "//------------------------------------------------------------------\n";
		$prepa_config .= "function erreur_sql(\$resultat_sql,\$req){\n";
   		$prepa_config .= "if (!\$resultat_sql){\n";
      	$prepa_config .= "echo \"Requête : \".\$req.\"<BR>\";\n";
      	$prepa_config .= "\$error=\"Erreur : \".mysql_errno().\" : \".mysql_error();\n";
      	$prepa_config .= "echo \$error.\"<BR>\";\n";
   		$prepa_config .= "}\n";
		$prepa_config .= "}\n";
		$prepa_config .= "//------------------------------------------------------------------\n";
		$prepa_config .= "function execute_sql(\$req){\n";
   		$prepa_config .= "\$resultat_sql=mysql_query(\$req);\n";
   		$prepa_config .= "erreur_sql(\$resultat_sql,\$req);\n";
   		$prepa_config .= "return \$resultat_sql;\n";
		$prepa_config .= "}\n";
		$prepa_config .= "?>";
		$File_config = fopen("../plugins/items_et_traductions/config.php","w+");
		fwrite($File_config,$prepa_config);
		fclose($File_config);
		$reponse_init_plugin .= _T('traduction:fichier_config_ok')."<br />";
		}
	}
	
require_once('../plugins/items_et_traductions/config.php');
//echo $_SERVER["PHP_SELF"];
// creation des fichiers de langue
// on commence par creer le dossier de langue
if(!is_dir('../lang') && !mkdir('../lang',0777)) {
	$reponse_init_plugin .= _T('traduction:creation_dossier_lang'); }
elseif(is_dir('../lang')) {
	//on prepares l'ecriture des fichiers de langue
	$prepa_fichier =  "<?\n";
	$prepa_fichier .= "// ceci est le fichier langue spip\n\n";
	$prepa_fichier .= "\$GLOBALS[\$GLOBALS['idx_lang']] = array(\n";
	$prepa_fichier .= "\n);\n";
	$prepa_fichier .= "?>";
	// on boucle sur les langues actives pour créer les fichiers de langue
	foreach($tableau_langues as $key=>$val) {
		if($val != "" && (!file_exists('../lang/local_'.$val.'.php'))) {
			$fichier_langue = fopen('../lang/local_'.$val.'.php','w+');
			fwrite($fichier_langue,$prepa_fichier);
			@chmod('../lang/local_'.$val,0666);
			if(file_exists('../lang/local_'.$val.'.php')) {
				$reponse_init_plugin .= 'local_'.$val." : "._T('traduction:fichier_ok')."<br />"; }
			else {
				$reponse_init_plugin .= 'local_'.$val." : "._T('traduction:fichier_ko')."<br />"; }
			}
		}
			
	// initialisation du plugin, on liste les tables pour 
	// vérifier si les tables associées au plugin existent déjà
		
	$liste_table_traduction = mysql_list_tables($GLOBALS['plug_bdd']);
	$row = mysql_fetch_row($liste_table_traduction);
	$listing_table_traduction = array();
	while($row = mysql_fetch_row($liste_table_traduction)) {
		$table_traduction = $row[0];
		array_push($listing_table_traduction,$table_traduction);
		}

	// si les tables n'existent pas, on les génère	
	if(!in_array('spip_traductions',$listing_table_traduction)) {
		// table des traductions
		$create_table_spip_traductions = "CREATE TABLE `spip_traductions` (`id_traduction` BIGINT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY, `item_traduction` VARCHAR( 255 ) NOT NULL, `exp_traduction` VARCHAR( 255 ) NOT NULL, `secteur_traduction` INT( 50 ) NOT NULL DEFAULT 0) ENGINE = MYISAM ;";
		if($Result_create_table_spip_traductions = spip_query_db($create_table_spip_traductions)) {
			$reponse_init_plugin .= 'spip_traductions'.' : '._T('traduction:table_ok')."<br />"; }
		else {
			$reponse_init_plugin .= 'spip_traductions'.' : '._T('traduction:table_ko')."<br />"; }
			}
			
		// table des secteurs de traductionss 
		// pour permettre de classifier un peu tout sinon c'est le b... !
		if(!in_array('spip_traductions_secteurs',$listing_table_traduction)) {
			$create_table_spip_traductions_secteurs = "CREATE TABLE `spip_traductions_secteurs` (`id_secteurs_traduction` BIGINT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY, `item_secteurs_traduction` VARCHAR( 255 ) NOT NULL) ENGINE = MYISAM ;";
			if($Result_create_table_spip_traductions_secteurs = spip_query_db($create_table_spip_traductions_secteurs)) {
				$reponse_init_plugin .= 'spip_traductions_secteurs'.' : '._T('traduction:table_trad_ok')."<br />"; }
			else {
				$reponse_init_plugin .= 'spip_traductions_secteurs'.' : '._T('traduction:table_trad_ko')."<br />"; }
			}
				
		// on liste les champs de la table spip_traductions pour ajouter les langues actives
		$Liste_champs_table_traduction = "SHOW COLUMNS FROM `spip_traductions`";
		$Result_Liste_champs_table_traduction = spip_query_db($Liste_champs_table_traduction);        
		// Сначала формируем массив полей
        $Row_Liste_champs_table_traduction = array();
        while ($row = mysql_fetch_row($Result_Liste_champs_table_traduction)) {
            $Row_Liste_champs_table_traduction[] = $row[0]; 
        }
		  // mise a jour de la table spip_traductions
		  foreach($tableau_langues as $key=>$val) {
			//if($val != "" && (!in_array($val,$Row_Liste_champs_table_traduction[$val])))
            if($val != "" && (!in_array($val,$Row_Liste_champs_table_traduction))) {
                $create_table_spip_langues = spip_query_db("ALTER TABLE `spip_traductions` ADD `".$val."` BLOB NOT NULL ;");
                echo "Items & Traductions: Language \"$val\" added! \n";
            }
			}
		  }
        
if($reponse_init_plugin != "") { 
	echo debut_boite_info(true);print_r($liste_table_traduction);
	echo "<p style='color:red;font-weight:bold;text-decoration:underline'>"._T('traduction:infos')."</p>"; 
	echo "<p style='color:red;'>".stripslashes($reponse_init_plugin)."</p>";
	echo fin_boite_info(true);
	}
?>
